<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>set_bar_code_param [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_identification.html">Identification</a> / <a href="toc_identification_barcode.html">Bar Code</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">set_bar_code_param</span><span data-if="c" style="display:none;">T_set_bar_code_param</span><span data-if="cpp" style="display:none;">SetBarCodeParam</span><span data-if="dotnet" style="display:none;">SetBarCodeParam</span><span data-if="python" style="display:none;">set_bar_code_param</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">set_bar_code_param</span><span data-if="c" style="display:none;">T_set_bar_code_param</span><span data-if="cpp" style="display:none;">SetBarCodeParam</span><span data-if="dotnet" style="display:none;">SetBarCodeParam</span><span data-if="python" style="display:none;">set_bar_code_param</span></code> — Set selected parameters of the bar code model.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>set_bar_code_param</b>( :  : <a href="#BarCodeHandle"><i>BarCodeHandle</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_set_bar_code_param</b>(const Htuple <a href="#BarCodeHandle"><i>BarCodeHandle</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>SetBarCodeParam</b>(const HTuple&amp; <a href="#BarCodeHandle"><i>BarCodeHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBarCode.html">HBarCode</a>::<b>SetBarCodeParam</b>(const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code>void <a href="HBarCode.html">HBarCode</a>::<b>SetBarCodeParam</b>(const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, double <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code>void <a href="HBarCode.html">HBarCode</a>::<b>SetBarCodeParam</b>(const char* <a href="#GenParamName"><i>GenParamName</i></a>, double <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code>void <a href="HBarCode.html">HBarCode</a>::<b>SetBarCodeParam</b>(const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, double <a href="#GenParamValue"><i>GenParamValue</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>SetBarCodeParam</b>(<a href="HTuple.html">HTuple</a> <a href="#BarCodeHandle"><i>barCodeHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBarCode.html">HBarCode</a>.<b>SetBarCodeParam</b>(<a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBarCode.html">HBarCode</a>.<b>SetBarCodeParam</b>(string <a href="#GenParamName"><i>genParamName</i></a>, double <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>set_bar_code_param</b>(<a href="#BarCodeHandle"><i>bar_code_handle</i></a>: HHandle, <a href="#GenParamName"><i>gen_param_name</i></a>: MaybeSequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: MaybeSequence[Union[float, int, str]]) -&gt; None</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code> is used to set or change the
different parameters of a bar code model in order to adapt to special
properties of the bar codes or to a particular appearance in the image.
All parameters can also be set while creating the bar code model with
<a href="create_bar_code_model.html"><code><span data-if="hdevelop" style="display:inline">create_bar_code_model</span><span data-if="c" style="display:none">create_bar_code_model</span><span data-if="cpp" style="display:none">CreateBarCodeModel</span><span data-if="com" style="display:none">CreateBarCodeModel</span><span data-if="dotnet" style="display:none">CreateBarCodeModel</span><span data-if="python" style="display:none">create_bar_code_model</span></code></a>. The current configuration of the bar code
model can be queried with <a href="get_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_param</span><span data-if="c" style="display:none">get_bar_code_param</span><span data-if="cpp" style="display:none">GetBarCodeParam</span><span data-if="com" style="display:none">GetBarCodeParam</span><span data-if="dotnet" style="display:none">GetBarCodeParam</span><span data-if="python" style="display:none">get_bar_code_param</span></code></a>.
</p>
<p>The following overview lists the different generic parameters with the
respective value ranges and default values:
</p>
<h3>Size of bar code elements:</h3>
<p>The first two parameters, <i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i>, influence the search for candidate
regions and the decoding of the bar code. But note that these values
are not used as strict limits for the size of the elements of found bar
codes, i.e., also bar codes with elements that are smaller
than <i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i> or larger than
<i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i> may be found.
</p>
<p><span class="pardesc"><span class="parcat">Attention:
      </span></span> When the size is changed by calling 该算子
<code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code>, the consistency of the parameters
<i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i> and <i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i> is verified. Both
parameters should be set in the same call.
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i>:</b></dt>
<dd>
<p>

Minimal size of the base bar code elements (also called 'modules'
or 'narrow bars', depending on the specific bar code type), i.e.,
the minimal width of the narrowest bars and spaces for the specific
bar code type. The value of this parameter is defined in pixels.
For low resolution bar codes, the value should be reduced
to <i>1.5</i>, and in some cases even as low as <i>0.6</i>.
If the <i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i> is specified below <i>2.0</i> pixels an
additional decoding attempt is made (see
<i><span data-if="hdevelop" style="display:inline">'small_elements_robustness'</span><span data-if="c" style="display:none">"small_elements_robustness"</span><span data-if="cpp" style="display:none">"small_elements_robustness"</span><span data-if="com" style="display:none">"small_elements_robustness"</span><span data-if="dotnet" style="display:none">"small_elements_robustness"</span><span data-if="python" style="display:none">"small_elements_robustness"</span></i> for more details on this attempt).
In the case of huge bar codes, the value should be increased, which
results in a shorter execution time and fewer candidates.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> [<i>1.2</i>, ..., <i>10.0</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Value range:
      </span></span> [<i>0.6</i>, ..., <i>64</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>2.0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i>:</b></dt>
<dd>
<p>

Maximal size of the base bar code elements (also called 'modules'
or 'narrow bars', depending on the specific bar code type), i.e.,
the maximal width of the narrowest bars and spaces for the specific
bar code type. The value of <i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i> is defined in
pixels. It should be adequately low such that two neighboring bar
codes are not fused into a single one. On the other hand the value should be
sufficiently high in order to find the complete bar code region.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> [<i>4.0</i>, ..., <i>60.0</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Value range:
      </span></span> [<i>1</i>, ..., <i>256</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>8.0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'element_size_variable'</span><span data-if="c" style="display:none">"element_size_variable"</span><span data-if="cpp" style="display:none">"element_size_variable"</span><span data-if="com" style="display:none">"element_size_variable"</span><span data-if="dotnet" style="display:none">"element_size_variable"</span><span data-if="python" style="display:none">"element_size_variable"</span></i>:</b></dt>
<dd>
<p>
 In some bar code images, the
smallest element size may vary across a given bar code object. These
deformations might be caused by perspective projection or by deformations
of the surface on which the bar code is printed (e.g., barrel distortion
on a bottle). By default, the bar code reader cannot handle such
distortions. However, if <i><span data-if="hdevelop" style="display:inline">'element_size_variable'</span><span data-if="c" style="display:none">"element_size_variable"</span><span data-if="cpp" style="display:none">"element_size_variable"</span><span data-if="com" style="display:none">"element_size_variable"</span><span data-if="dotnet" style="display:none">"element_size_variable"</span><span data-if="python" style="display:none">"element_size_variable"</span></i> is set to
<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, the bar code reader tries to compensate for such
distortions. Please note that in some situations it is still not possible
to undistort the bar code image.</p>


<p>The parameter <i><span data-if="hdevelop" style="display:inline">'element_size_variable'</span><span data-if="c" style="display:none">"element_size_variable"</span><span data-if="cpp" style="display:none">"element_size_variable"</span><span data-if="com" style="display:none">"element_size_variable"</span><span data-if="dotnet" style="display:none">"element_size_variable"</span><span data-if="python" style="display:none">"element_size_variable"</span></i> applies to the
following bar code types only:
</p>
<ul>
<li>
<p> GS1 DataBar Limited
</p>
</li>
<li>
<p> GS1 DataBar Expanded
</p>
</li>
<li>
<p> GS1 DataBar Expanded Stacked
</p>
</li>
</ul>

<p>Any other bar code type is unaffected by this parameter.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span>  <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'barcode_height_min'</span><span data-if="c" style="display:none">"barcode_height_min"</span><span data-if="cpp" style="display:none">"barcode_height_min"</span><span data-if="com" style="display:none">"barcode_height_min"</span><span data-if="dotnet" style="display:none">"barcode_height_min"</span><span data-if="python" style="display:none">"barcode_height_min"</span></i>:</b></dt>
<dd>
<p>

Minimal bar code height. The value of this parameter is defined
in pixels. The default value is <i>-1</i>, meaning that the
bar code reader automatically derives
a reasonable height from the other parameters. Just for very flat
and very high bar codes a manual adjustment of this parameter can
be necessary. In the case of a bar code with a height of less than
16 pixels the respective height should be set by the user. Note,
that the minimal value is 8 pixels. If the bar code is very high,
i.e. 70 pixels and more, manually adjusting to the respective height
can lead to a speed-up of the subsequent finding and reading
operation.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>-1</i>, <i>8</i>, <i>64</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>-1</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'barcode_width_min'</span><span data-if="c" style="display:none">"barcode_width_min"</span><span data-if="cpp" style="display:none">"barcode_width_min"</span><span data-if="com" style="display:none">"barcode_width_min"</span><span data-if="dotnet" style="display:none">"barcode_width_min"</span><span data-if="python" style="display:none">"barcode_width_min"</span></i>:</b></dt>
<dd>
<p>

Minimal bar code width. The value of this parameter is defined in pixels.
The width of a bar code depends on many factors:
</p>
<ul>
<li>
<p> resolution of the camera
</p>
</li>
<li>
<p> distance between camera and bar code
</p>
</li>
<li>
<p> bar code type
</p>
</li>
<li>
<p> number of encoded characters
</p>
</li>
</ul>
<p>
If these properties are constant throughout the application, this
parameter should be set in order to increase both speed and robustness.
The default value is <i>-1</i>, meaning that the reader estimates
a minimal bar code width based on symbology specifications
and the parameter <i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>-1</i>, <i>40</i>,
<i>50</i>, <i>60</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>-1</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'barcode_width_max'</span><span data-if="c" style="display:none">"barcode_width_max"</span><span data-if="cpp" style="display:none">"barcode_width_max"</span><span data-if="com" style="display:none">"barcode_width_max"</span><span data-if="dotnet" style="display:none">"barcode_width_max"</span><span data-if="python" style="display:none">"barcode_width_max"</span></i>:</b></dt>
<dd>
<p>

Maximal bar code width. The value of this parameter is defined in pixels.
The width of a bar code depends on many factors:
</p>
<ul>
<li>
<p> resolution of the camera
</p>
</li>
<li>
<p> distance between camera and bar code
</p>
</li>
<li>
<p> bar code type
</p>
</li>
<li>
<p> number of encoded characters
</p>
</li>
</ul>

<p>If the maximal bar code width is known, this parameter can increase the
robustness. Especially the unintended merging of bar codes lying close to
each other can be avoided reliably. In general it should not be necessary
to set this parameter. The default value is <i>-1</i>, meaning that the
maximal bar code width is not restricted.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>-1</i>, <i>300</i>,
<i>400</i>, <i>500</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>-1</i>
</p>
</dd>
</dl>
<h3>Scanning settings:</h3>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'num_scanlines'</span><span data-if="c" style="display:none">"num_scanlines"</span><span data-if="cpp" style="display:none">"num_scanlines"</span><span data-if="com" style="display:none">"num_scanlines"</span><span data-if="dotnet" style="display:none">"num_scanlines"</span><span data-if="python" style="display:none">"num_scanlines"</span></i>:</b></dt>
<dd>
<p>

Maximum number of scanlines used during the scanning of a (candidate)
bar code.
If <i><span data-if="hdevelop" style="display:inline">'num_scanlines'</span><span data-if="c" style="display:none">"num_scanlines"</span><span data-if="cpp" style="display:none">"num_scanlines"</span><span data-if="com" style="display:none">"num_scanlines"</span><span data-if="dotnet" style="display:none">"num_scanlines"</span><span data-if="python" style="display:none">"num_scanlines"</span></i> is not set (the parameter has a value
of <i>0</i>), the maximum number of scanlines is determined internally
and it will be <i>10</i> for all single-row bar codes, <i>20</i> for
GS1 DataBar Stacked and GS1 DataBar Stacked Omnidirectional,
and <i>55</i> for GS1 DataBar Expanded Stacked.
With this parameter, you can improve performance in two cases. In
the first case, the image contains many false candidates. While the
bar code itself is usually decoded after one or two scans (except
for stacked bar codes, see below), a false
candidate is scanned with the default value of 10 scanlines, which
increases the runtime unnecessarily. Reducing the number of scanlines
can therefore improve performance in images with many
false candidates. As a rule of thumb, images with higher quality
need less scanlines than images of lower quality. For an average
image, a value between 2 and 5 should be sufficient. If a bar code
can, however, not be detected after reducing the number of scanlines,
the number has to be increased again.
The second case concerns stacked bar codes (currently GS1 DataBar
Stacked, GS1 DataBar Stacked Omnidirectional, and GS1 DataBar Expanded
Stacked). Here, all scanlines are evaluated, in contrast to single-row
bar codes (e.g., Code 128, EAN 13, or GS1 DataBar Limited) where the
scanning stops after the code is decoded successfully.
Since the scanning of the scanlines is actually one of the most time
consuming parts of the <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> algorithm, adjusting
<i><span data-if="hdevelop" style="display:inline">'num_scanlines'</span><span data-if="c" style="display:none">"num_scanlines"</span><span data-if="cpp" style="display:none">"num_scanlines"</span><span data-if="com" style="display:none">"num_scanlines"</span><span data-if="dotnet" style="display:none">"num_scanlines"</span><span data-if="python" style="display:none">"num_scanlines"</span></i> might result in essential performance
improvements. This is especially valid for GS1 DataBar Expanded Stacked.
A GS1 DataBar Expanded Stacked symbol might have up to 11 rows and
therefore 55 scanlines are required to robustly detect all of them.
If only symbols with smaller number of rows are expected,
you can reduce <i><span data-if="hdevelop" style="display:inline">'num_scanlines'</span><span data-if="c" style="display:none">"num_scanlines"</span><span data-if="cpp" style="display:none">"num_scanlines"</span><span data-if="com" style="display:none">"num_scanlines"</span><span data-if="dotnet" style="display:none">"num_scanlines"</span><span data-if="python" style="display:none">"num_scanlines"</span></i>, leaving 1.5 to 5 scanlines
per row.</p>


<p>If this parameter is set to a value that is smaller than the specified
<i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> value, the value of the parameter
<i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> is automatically reduced to the value
of the specified <i><span data-if="hdevelop" style="display:inline">'num_scanlines'</span><span data-if="c" style="display:none">"num_scanlines"</span><span data-if="cpp" style="display:none">"num_scanlines"</span><span data-if="com" style="display:none">"num_scanlines"</span><span data-if="dotnet" style="display:none">"num_scanlines"</span><span data-if="python" style="display:none">"num_scanlines"</span></i>.</p>


<p>This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>5</i>, <i>10</i>,
<i>20</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i>:</b></dt>
<dd>
<p>

With this parameter, the probability can be lowered to read bar codes
wrongly or in places where no bar codes is present. The parameter
specifies the minimal number of decoded scanlines which return
identical data to read the bar code successfully.</p>


<p>If this parameter is set to 0 (which is the default for all code types,
except for '2/5 Industrial' and '2/5 Interleaved'), a bar code
is considered decoded with the first successfully decoded scanline (in
the case of stacked codes, there must be a successful scanline per symbol
row). If <i><span data-if="hdevelop" style="display:inline">'majority_voting'</span><span data-if="c" style="display:none">"majority_voting"</span><span data-if="cpp" style="display:none">"majority_voting"</span><span data-if="com" style="display:none">"majority_voting"</span><span data-if="dotnet" style="display:none">"majority_voting"</span><span data-if="python" style="display:none">"majority_voting"</span></i> is enabled, a different scheme
applies (see the section on <i><span data-if="hdevelop" style="display:inline">'majority_voting'</span><span data-if="c" style="display:none">"majority_voting"</span><span data-if="cpp" style="display:none">"majority_voting"</span><span data-if="com" style="display:none">"majority_voting"</span><span data-if="dotnet" style="display:none">"majority_voting"</span><span data-if="python" style="display:none">"majority_voting"</span></i> for more details).
Increasing this parameter to 2 or more is particularly useful, to prevent
that a bar code is detected accidentally. This can typically happen if a
scanline extracted erroneous or false edges out of a low quality image or
in a very noisy image fragment. This parameter can be used to reduce the
number of false detections also in cases where a specific bar code type
is searched for in an image containing symbols from other bar code
symbologies.</p>


<p>Note that the default value of this parameter is <i>0</i> for most
code types. However, the default value is <i>2</i> for
<i><span data-if="hdevelop" style="display:inline">'2/5 Industrial'</span><span data-if="c" style="display:none">"2/5 Industrial"</span><span data-if="cpp" style="display:none">"2/5 Industrial"</span><span data-if="com" style="display:none">"2/5 Industrial"</span><span data-if="dotnet" style="display:none">"2/5 Industrial"</span><span data-if="python" style="display:none">"2/5 Industrial"</span></i> and <i><span data-if="hdevelop" style="display:inline">'2/5 Interleaved'</span><span data-if="c" style="display:none">"2/5 Interleaved"</span><span data-if="cpp" style="display:none">"2/5 Interleaved"</span><span data-if="com" style="display:none">"2/5 Interleaved"</span><span data-if="dotnet" style="display:none">"2/5 Interleaved"</span><span data-if="python" style="display:none">"2/5 Interleaved"</span></i> bar code types.
The reason for this is that these bar code types are easily misread in
other structures like clutter and text with a
<i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> setting of <i>1</i>.</p>


<p>This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>


<p>If merged scanlines (see <i><span data-if="hdevelop" style="display:inline">'merge_scanlines'</span><span data-if="c" style="display:none">"merge_scanlines"</span><span data-if="cpp" style="display:none">"merge_scanlines"</span><span data-if="com" style="display:none">"merge_scanlines"</span><span data-if="dotnet" style="display:none">"merge_scanlines"</span><span data-if="python" style="display:none">"merge_scanlines"</span></i>) are used,
<i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> specifies in how many scanlines each
edges must be recognized successfully (see <a href="get_bar_code_object.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_object</span><span data-if="c" style="display:none">get_bar_code_object</span><span data-if="cpp" style="display:none">GetBarCodeObject</span><span data-if="com" style="display:none">GetBarCodeObject</span><span data-if="dotnet" style="display:none">GetBarCodeObject</span><span data-if="python" style="display:none">get_bar_code_object</span></code></a>,
<i><span data-if="hdevelop" style="display:inline">'scanlines_merged_edges'</span><span data-if="c" style="display:none">"scanlines_merged_edges"</span><span data-if="cpp" style="display:none">"scanlines_merged_edges"</span><span data-if="com" style="display:none">"scanlines_merged_edges"</span><span data-if="dotnet" style="display:none">"scanlines_merged_edges"</span><span data-if="python" style="display:none">"scanlines_merged_edges"</span></i>).</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>2</i>, <i>3</i></p>

<span class="pardesc"><span class="parcat">Default:
      </span></span>

<div style="text-align:center"><table style="margin-left:auto;margin-right:auto" class="table">
<col span="1">
<col span="1">
<tr>
<th style="text-align:left">
Bar code Type </th>
<th style="text-align:center"> <i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> </th>
</tr>
<tr>
<td style="text-align:left">
2/5 Industrial  </td>
<td style="text-align:center"> 2 </td>
</tr>
<tr>
<td style="text-align:left">
2/5 Interleaved </td>
<td style="text-align:center"> 2 </td>
</tr>
<tr>
<td style="text-align:left">
all others      </td>
<td style="text-align:center"> 0
</td>
</tr>
</table></div>


</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'majority_voting'</span><span data-if="c" style="display:none">"majority_voting"</span><span data-if="cpp" style="display:none">"majority_voting"</span><span data-if="com" style="display:none">"majority_voting"</span><span data-if="dotnet" style="display:none">"majority_voting"</span><span data-if="python" style="display:none">"majority_voting"</span></i>:</b></dt>
<dd>
<p>

This parameter controls the decode result selection mode. If this
parameter is <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, a successful decode result is returned if
the minimal number of identically decoded scanlines are found (see
section on <i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> for more details). By
setting this parameter to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> a majority voting scheme is
used to select between different scanline results. The result
which is decoded by the majority of all scanlines is selected as the
overall result. Please note that setting this parameter to
<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> leads to a slightly increased runtime since nearly all
scanlines have to be considered instead of just the minimal identical
ones.</p>
<p>
In order to reduce false decode results this parameter should be
enabled.</p>
<p>
This parameter is only supported for non-stacked bar code types.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'stop_after_result_num'</span><span data-if="c" style="display:none">"stop_after_result_num"</span><span data-if="cpp" style="display:none">"stop_after_result_num"</span><span data-if="com" style="display:none">"stop_after_result_num"</span><span data-if="dotnet" style="display:none">"stop_after_result_num"</span><span data-if="python" style="display:none">"stop_after_result_num"</span></i>:</b></dt>
<dd>
<p>

Number of successfully decoded bar codes after which the decoding
will stop.
If this parameter is not set (has a value of <i>0</i>), all bar code
candidates are decoded.
Typically, this parameter is set if the number of expected
bar codes is known in advance. Then the bar code reader can abort
further decoding of candidates after a certain number of bar codes has
been found and the overall decoding time will decrease.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>1</i>, <i>2</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>:</b></dt>
<dd>
<p>

Expected bar code orientation. A potential (candidate) bar code
contains bars with similar orientation. The <i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>
and <i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i> parameters are used to specify the
range [<i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>-<i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>+<i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i>].
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> processes a candidate bar code only when the
average orientation of its bars lies in this range. If the bar codes
are expected to appear only in certain orientations in the processed
images, you can reduce the orientation range adequately. This enables
an early identification of false candidates and hence shorter
execution times. This adjustment can be used for images with a lot
of texture, which includes fragments tending to result in false bar
code candidates.</p>
<p>
The actual orientation angle of a bar code is explained with
<a href="get_bar_code_result.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code></a>(...,<i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>,...) with the
only difference that for the early identification of false candidates
the reading direction of the bar codes is ignored, which results in
relevant orientation values only in the range
[<i>-90.0</i> ... <i>90.0</i>]. The only exception to
this rule constitutes the bar code symbol PharmaCode, which possesses
a forward and a backward reading direction at the same time: here,
<i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i> can take values in the range [<i>-180.0</i>
... <i>180.0</i>] and the decoded result is unique
corresponding to just one reading direction.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> [<i>-90.0</i>, ..., <i>90.0</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0.0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i>:</b></dt>
<dd>
<p>

Orientation tolerance. Please refer to the explanation of
<i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i> parameter for further information. As explained
there, relevant orientation values are only
in the range of [<i>-90.0</i> ... <i>90.0</i>], which
means that with <i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i> = <i>90</i> the whole
range is spanned. Therefore, valid values for <i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i>
are only in the range of [<i>0.0</i> ... <i>90.0</i>].
The default value <i>90.0</i> means that no restriction on the bar
code candidates is performed.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> [<i>0.0</i>, ..., <i>90.0</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>90.0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'quiet_zone'</span><span data-if="c" style="display:none">"quiet_zone"</span><span data-if="cpp" style="display:none">"quiet_zone"</span><span data-if="com" style="display:none">"quiet_zone"</span><span data-if="dotnet" style="display:none">"quiet_zone"</span><span data-if="python" style="display:none">"quiet_zone"</span></i>:</b></dt>
<dd>
<p>

Enforces the verification of the quiet zones of a bar code symbol.
When enabled, scanlines are rejected when unexpected bars are
detected within the quiet zones both left or right of a detected bar
code sequence.
Possible values:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>: The quiet zones verification is disabled.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>: The quiet zones must be at least as wide as
specified by the corresponding bar code standard.
The following values apply (in X units, where X stands for "module
width" and corresponds to the smallest width of a bar in the
sequence):</p>



<div style="text-align:center"><table style="margin-left:auto;margin-right:auto" class="table">
<col span="1">
<col span="1">
<col span="1">
<col span="1">
<col span="1">
<col span="1">
<tr>
<th style="text-align:left">
Bar code Type </th>
<th style="text-align:left">Left QZ </th>
<th style="text-align:left">Right QZ </th>
<th style="text-align:left">Bar code Type </th>
<th style="text-align:left">Left QZ </th>
<th style="text-align:left">Right QZ</th>
</tr>
<tr>
<td style="text-align:left">
2/5 Industrial  </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> UPC-A                        </td>
<td style="text-align:left"> 9  </td>
<td style="text-align:left"> 9 </td>
</tr>
<tr>
<td style="text-align:left">
2/5 Interleaved </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> UPC-A Add-On 2               </td>
<td style="text-align:left"> 9  </td>
<td style="text-align:left"> 5 </td>
</tr>
<tr>
<td style="text-align:left">
Codabar         </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> UPC-A Add-On 5               </td>
<td style="text-align:left"> 9  </td>
<td style="text-align:left"> 5 </td>
</tr>
<tr>
<td style="text-align:left">
Code 39         </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> UPC-E                        </td>
<td style="text-align:left"> 9  </td>
<td style="text-align:left"> 7 </td>
</tr>
<tr>
<td style="text-align:left">
Code 93         </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> UPC-E Add-On 2               </td>
<td style="text-align:left"> 9  </td>
<td style="text-align:left"> 5 </td>
</tr>
<tr>
<td style="text-align:left">
Code 128        </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> UPC-E Add-On 5               </td>
<td style="text-align:left"> 9  </td>
<td style="text-align:left"> 5 </td>
</tr>
<tr>
<td style="text-align:left">
MSI             </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> GS1-128                      </td>
<td style="text-align:left"> 10 </td>
<td style="text-align:left"> 10</td>
</tr>
<tr>
<td style="text-align:left">
PharmaCode      </td>
<td style="text-align:left"> 5  </td>
<td style="text-align:left"> 5  </td>
<td style="text-align:left"> GS1 DataBar Omnidir          </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 1 </td>
</tr>
<tr>
<td style="text-align:left">
EAN-8           </td>
<td style="text-align:left"> 7  </td>
<td style="text-align:left"> 7  </td>
<td style="text-align:left"> GS1 DataBar Truncated        </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 1 </td>
</tr>
<tr>
<td style="text-align:left">
EAN-8 Add-On 2  </td>
<td style="text-align:left"> 7  </td>
<td style="text-align:left"> 5  </td>
<td style="text-align:left"> GS1 DataBar Stacked          </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 1 </td>
</tr>
<tr>
<td style="text-align:left">
EAN-8 Add-On 5  </td>
<td style="text-align:left"> 7  </td>
<td style="text-align:left"> 5  </td>
<td style="text-align:left"> GS1 DataBar Stacked Omnidir  </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 1 </td>
</tr>
<tr>
<td style="text-align:left">
EAN-13          </td>
<td style="text-align:left"> 11 </td>
<td style="text-align:left"> 7  </td>
<td style="text-align:left"> GS1 DataBar Limited          </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 5 </td>
</tr>
<tr>
<td style="text-align:left">
EAN-13 Add-On 2 </td>
<td style="text-align:left"> 11 </td>
<td style="text-align:left"> 5  </td>
<td style="text-align:left"> GS1 DataBar Expanded         </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 1 </td>
</tr>
<tr>
<td style="text-align:left">
EAN-13 Add-On 5 </td>
<td style="text-align:left"> 11 </td>
<td style="text-align:left"> 5  </td>
<td style="text-align:left"> GS1 DataBar Expanded Stacked </td>
<td style="text-align:left"> 1  </td>
<td style="text-align:left"> 1
</td>
</tr>
</table></div>


</li>
<li>
<p> An integer value (&gt;= <i>1</i>): The quiet zones must be at least
as wide as <i><span data-if="hdevelop" style="display:inline">'quiet_zone'</span><span data-if="c" style="display:none">"quiet_zone"</span><span data-if="cpp" style="display:none">"quiet_zone"</span><span data-if="com" style="display:none">"quiet_zone"</span><span data-if="dotnet" style="display:none">"quiet_zone"</span><span data-if="python" style="display:none">"quiet_zone"</span></i> x X.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'tolerant'</span><span data-if="c" style="display:none">"tolerant"</span><span data-if="cpp" style="display:none">"tolerant"</span><span data-if="com" style="display:none">"tolerant"</span><span data-if="dotnet" style="display:none">"tolerant"</span><span data-if="python" style="display:none">"tolerant"</span></i>: A limited number of edges are allowed in the
quiet zones, but at most 1 per 4 module widths.
The intent of this is to prevent detecting only part of a bar code,
while still allowing to read bar codes with simple quiet zone
violations.</p>
<p>
<i>Note:</i> Even for code types with a specified quiet zone smaller
than four module widths, the edges are checked within a range of four
module widths around the code. In this case, this criterion can be
stricter than the verification with
<i><span data-if="hdevelop" style="display:inline">'quiet_zone'</span><span data-if="c" style="display:none">"quiet_zone"</span><span data-if="cpp" style="display:none">"quiet_zone"</span><span data-if="com" style="display:none">"quiet_zone"</span><span data-if="dotnet" style="display:none">"quiet_zone"</span><span data-if="python" style="display:none">"quiet_zone"</span></i>=<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</li>
</ul>
<p>
The quiet zone verification is very useful when using the bar code
reader in multi-type or 'auto' reading mode. It prevents that
simple bar code types are detected inside of a bar sequence
representing a longer bar code or inside another, typically
more complex bar code type. Usually, values between <i>2</i> and
<i>4</i> achieve optimal results by effectively suppressing false bar
codes, but still tolerating small disturbances, textures, label edges,
etc. next to the symbol.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<i>Note:</i> The quiet zones serve as a check, that no bar is detected
within this zones, but it is not required that the quiet zones are
contained as a whole in the image.
This means, if a set quiet zone is not contained as a whole, only the
part within the image is assessed and the part outside the image is
assumed to be free of defects.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'tolerant'</span><span data-if="c" style="display:none">"tolerant"</span><span data-if="cpp" style="display:none">"tolerant"</span><span data-if="com" style="display:none">"tolerant"</span><span data-if="dotnet" style="display:none">"tolerant"</span><span data-if="python" style="display:none">"tolerant"</span></i>, <i>1</i>, ...,
<i>100</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'start_stop_tolerance'</span><span data-if="c" style="display:none">"start_stop_tolerance"</span><span data-if="cpp" style="display:none">"start_stop_tolerance"</span><span data-if="com" style="display:none">"start_stop_tolerance"</span><span data-if="dotnet" style="display:none">"start_stop_tolerance"</span><span data-if="python" style="display:none">"start_stop_tolerance"</span></i>:</b></dt>
<dd>
<p>

Enforces a tolerant (<i><span data-if="hdevelop" style="display:inline">'high'</span><span data-if="c" style="display:none">"high"</span><span data-if="cpp" style="display:none">"high"</span><span data-if="com" style="display:none">"high"</span><span data-if="dotnet" style="display:none">"high"</span><span data-if="python" style="display:none">"high"</span></i>) or strict (<i><span data-if="hdevelop" style="display:inline">'low'</span><span data-if="c" style="display:none">"low"</span><span data-if="cpp" style="display:none">"low"</span><span data-if="com" style="display:none">"low"</span><span data-if="dotnet" style="display:none">"low"</span><span data-if="python" style="display:none">"low"</span></i>)
searching criteria while inspecting a scanline for a start or stop
pattern, respectively. A more tolerant criteria will generally
increase the detection chances of a bar code, provided that a
clear symbol is imaged in the processed image. On the other side, it
might result in false detections in noisy images or images containing
symbols from other symbologies. Less tolerant criteria increase the
robustness against false detections, but might reduce the general
detection rate. Currently, there are two distinct criteria
implemented only for Code 128 and GS1-128.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>. As already
mentioned, currently this makes a difference only for Code 128 and
GS1-128.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'high'</span><span data-if="c" style="display:none">"high"</span><span data-if="cpp" style="display:none">"high"</span><span data-if="com" style="display:none">"high"</span><span data-if="dotnet" style="display:none">"high"</span><span data-if="python" style="display:none">"high"</span></i>, <i><span data-if="hdevelop" style="display:inline">'low'</span><span data-if="c" style="display:none">"low"</span><span data-if="cpp" style="display:none">"low"</span><span data-if="com" style="display:none">"low"</span><span data-if="dotnet" style="display:none">"low"</span><span data-if="python" style="display:none">"low"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'high'</span><span data-if="c" style="display:none">"high"</span><span data-if="cpp" style="display:none">"high"</span><span data-if="com" style="display:none">"high"</span><span data-if="dotnet" style="display:none">"high"</span><span data-if="python" style="display:none">"high"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_code_length'</span><span data-if="c" style="display:none">"min_code_length"</span><span data-if="cpp" style="display:none">"min_code_length"</span><span data-if="com" style="display:none">"min_code_length"</span><span data-if="dotnet" style="display:none">"min_code_length"</span><span data-if="python" style="display:none">"min_code_length"</span></i>:</b></dt>
<dd>
<p>

Minimal number of decoded characters. If a bar code is found with a code
length below <i><span data-if="hdevelop" style="display:inline">'min_code_length'</span><span data-if="c" style="display:none">"min_code_length"</span><span data-if="cpp" style="display:none">"min_code_length"</span><span data-if="com" style="display:none">"min_code_length"</span><span data-if="dotnet" style="display:none">"min_code_length"</span><span data-if="python" style="display:none">"min_code_length"</span></i>, the result is discarded and not
returned by <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> or <a href="decode_bar_code_rectangle2.html"><code><span data-if="hdevelop" style="display:inline">decode_bar_code_rectangle2</span><span data-if="c" style="display:none">decode_bar_code_rectangle2</span><span data-if="cpp" style="display:none">DecodeBarCodeRectangle2</span><span data-if="com" style="display:none">DecodeBarCodeRectangle2</span><span data-if="dotnet" style="display:none">DecodeBarCodeRectangle2</span><span data-if="python" style="display:none">decode_bar_code_rectangle2</span></code></a>.
This parameter is useful to reduce the number of false reads in
applications where the minimal number of characters is known in
advance.</p>


<p>Note that the default value of this parameter is <i>0</i> for most
code types. However, the default value is <i>3</i> for
<i><span data-if="hdevelop" style="display:inline">'2/5 Industrial'</span><span data-if="c" style="display:none">"2/5 Industrial"</span><span data-if="cpp" style="display:none">"2/5 Industrial"</span><span data-if="com" style="display:none">"2/5 Industrial"</span><span data-if="dotnet" style="display:none">"2/5 Industrial"</span><span data-if="python" style="display:none">"2/5 Industrial"</span></i> and <i><span data-if="hdevelop" style="display:inline">'2/5 Interleaved'</span><span data-if="c" style="display:none">"2/5 Interleaved"</span><span data-if="cpp" style="display:none">"2/5 Interleaved"</span><span data-if="com" style="display:none">"2/5 Interleaved"</span><span data-if="dotnet" style="display:none">"2/5 Interleaved"</span><span data-if="python" style="display:none">"2/5 Interleaved"</span></i> bar code types.
The reason for this is that these bar code types are easily misread in
other structures like clutter and text with a code length of <i>2</i>.</p>


<p>This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>1</i>, <i>2</i></p>

<span class="pardesc"><span class="parcat">Default:
      </span></span>

<div style="text-align:center"><table style="margin-left:auto;margin-right:auto" class="table">
<col span="1">
<col span="1">
<tr>
<th style="text-align:left">
Bar code Type </th>
<th style="text-align:center"> <i><span data-if="hdevelop" style="display:inline">'min_code_length'</span><span data-if="c" style="display:none">"min_code_length"</span><span data-if="cpp" style="display:none">"min_code_length"</span><span data-if="com" style="display:none">"min_code_length"</span><span data-if="dotnet" style="display:none">"min_code_length"</span><span data-if="python" style="display:none">"min_code_length"</span></i> </th>
</tr>
<tr>
<td style="text-align:left">
2/5 Industrial  </td>
<td style="text-align:center"> 3 </td>
</tr>
<tr>
<td style="text-align:left">
2/5 Interleaved </td>
<td style="text-align:center"> 3 </td>
</tr>
<tr>
<td style="text-align:left">
all others      </td>
<td style="text-align:center"> 0
</td>
</tr>
</table></div>


</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_code_length'</span><span data-if="c" style="display:none">"max_code_length"</span><span data-if="cpp" style="display:none">"max_code_length"</span><span data-if="com" style="display:none">"max_code_length"</span><span data-if="dotnet" style="display:none">"max_code_length"</span><span data-if="python" style="display:none">"max_code_length"</span></i>:</b></dt>
<dd>
<p>

Maximum number of decoded characters. If a bar code is found with a code
length exceeding <i><span data-if="hdevelop" style="display:inline">'max_code_length'</span><span data-if="c" style="display:none">"max_code_length"</span><span data-if="cpp" style="display:none">"max_code_length"</span><span data-if="com" style="display:none">"max_code_length"</span><span data-if="dotnet" style="display:none">"max_code_length"</span><span data-if="python" style="display:none">"max_code_length"</span></i>, the result is discarded and not
returned by <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> or <a href="decode_bar_code_rectangle2.html"><code><span data-if="hdevelop" style="display:inline">decode_bar_code_rectangle2</span><span data-if="c" style="display:none">decode_bar_code_rectangle2</span><span data-if="cpp" style="display:none">DecodeBarCodeRectangle2</span><span data-if="com" style="display:none">DecodeBarCodeRectangle2</span><span data-if="dotnet" style="display:none">DecodeBarCodeRectangle2</span><span data-if="python" style="display:none">decode_bar_code_rectangle2</span></code></a>.
This parameter is useful to reduce the number of false reads in
applications where the maximum number of characters is known in
advance.</p>
<p>
<span class="pardesc"><span class="parcat">Value range:
      </span></span> <i>1</i> ... <i>2147483647</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>2147483647</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'merge_scanlines'</span><span data-if="c" style="display:none">"merge_scanlines"</span><span data-if="cpp" style="display:none">"merge_scanlines"</span><span data-if="com" style="display:none">"merge_scanlines"</span><span data-if="dotnet" style="display:none">"merge_scanlines"</span><span data-if="python" style="display:none">"merge_scanlines"</span></i>:</b></dt>
<dd>
<p>

If not enough scanlines (see <i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i>) can be
read successfully, i.e., because the bar code is partly occluded or
damaged, an attempt is being made to merge the existing scanlines. Then,
these merged scanlines are decoded again.
This additional decoding step is only performed for non-stacked bar code
types and can be disabled for performance reasons.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'small_elements_robustness'</span><span data-if="c" style="display:none">"small_elements_robustness"</span><span data-if="cpp" style="display:none">"small_elements_robustness"</span><span data-if="com" style="display:none">"small_elements_robustness"</span><span data-if="dotnet" style="display:none">"small_elements_robustness"</span><span data-if="python" style="display:none">"small_elements_robustness"</span></i>:</b></dt>
<dd>
<p>

If not enough scanlines (see <i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i>) can be
read successfully, i.e., because the bar code contains small elements
(smaller than <i>2.0</i> pixels in element size), an attempt is being made to
read the code with an advanced algorithm which tries to solve the low
resolution problem.
</p>
<p>This additional decoding attempt is only performed for non-stacked bar
code types and if the specified <i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i> is smaller
than <i>2.0</i> pixels.
</p>
<p>The status result of this attempt can be retrieved by calling the
operator <a href="get_bar_code_result.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code></a> with
<i><span data-if="hdevelop" style="display:inline">'status_small_elements_robustness'</span><span data-if="c" style="display:none">"status_small_elements_robustness"</span><span data-if="cpp" style="display:none">"status_small_elements_robustness"</span><span data-if="com" style="display:none">"status_small_elements_robustness"</span><span data-if="dotnet" style="display:none">"status_small_elements_robustness"</span><span data-if="python" style="display:none">"status_small_elements_robustness"</span></i>.
</p>
<p>In case of very small elements (smaller than <i>1.3</i> pixels in
element size) it is beneficial if the camera sensor is rotated slightly
with respect to the bar code (e.g., around 7 degrees). This is important
because in such low resolution cases the bar code information is
contained in multiple rows/columns of the perceived image only if it is
rotated. See the following two figures for examples.
</p>
<div style="text-align:center;" class="figure">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="336" height="90" customscale="0.5">
<g style="stroke-width:.025in; fill:yellow">
<image xlink:href=" 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 " preserveAspectRatio="none" x="0" y="0" width="100%" height="100%"></image>
</g>
</svg><div style="margin-bottom:30px;text-align:center;" class="caption">
A bar code at <i>0.9</i> element size without sensor rotation. The
relevant information of the bar code is not present in the image.
</div>
</div>

<div style="text-align:center;" class="figure">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="336" height="90" customscale="0.5">
<g style="stroke-width:.025in; fill:yellow">
<image xlink:href=" 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 EFL//D+HLOlVpaulgQAAAABJRU5ErkJggg== " preserveAspectRatio="none" x="0" y="0" width="100%" height="100%"></image>
</g>
</svg><div style="margin-bottom:30px;text-align:center;" class="caption">
The same bar code as in the previous figure with sensor rotation. The
rows of the image contain more information about the code and thus it
can be decoded successfully.
</div>
</div>

<p>Another important advice is to reduce the amount of blur introduced by
the optical system.
</p>
<p>The input image should not be preprocessed with filter operations such as
<a href="emphasize.html"><code><span data-if="hdevelop" style="display:inline">emphasize</span><span data-if="c" style="display:none">emphasize</span><span data-if="cpp" style="display:none">Emphasize</span><span data-if="com" style="display:none">Emphasize</span><span data-if="dotnet" style="display:none">Emphasize</span><span data-if="python" style="display:none">emphasize</span></code></a>, <a href="zoom_image_size.html"><code><span data-if="hdevelop" style="display:inline">zoom_image_size</span><span data-if="c" style="display:none">zoom_image_size</span><span data-if="cpp" style="display:none">ZoomImageSize</span><span data-if="com" style="display:none">ZoomImageSize</span><span data-if="dotnet" style="display:none">ZoomImageSize</span><span data-if="python" style="display:none">zoom_image_size</span></code></a> or <a href="mean_image.html"><code><span data-if="hdevelop" style="display:inline">mean_image</span><span data-if="c" style="display:none">mean_image</span><span data-if="cpp" style="display:none">MeanImage</span><span data-if="com" style="display:none">MeanImage</span><span data-if="dotnet" style="display:none">MeanImage</span><span data-if="python" style="display:none">mean_image</span></code></a>. Those
operators would remove important information.
</p>
<p>Note, if optical conditions are optimal (small amount of blur and slight
rotation with respect to the bar code) it is possible to read bar codes
as small as <i>0.6</i> pixels in element size.
</p>
<p>This feature is only compatible with byte input images and can be
disabled for performance reasons.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>
</dl>
<h3>Appearance of the bar code in the image:</h3>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i>:</b></dt>
<dd>
<p>

<i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i> defines a threshold which is a
relative value with respect to the dynamic range of the scanline pixels.
The bar-space-sequence of a bar code is determined with a scanline
measuring the position of the edges. Finding these edges requires the
mentioned threshold.
In the case of disturbances in the bar code region or a high noise
level, the value of <i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i> should be increased.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> [<i>0.05</i>, ..., <i>0.2</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Value range:
      </span></span> (<i>0.0</i>, <i>1.0</i>]
- without <i>0.0</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0.05</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i>:</b></dt>
<dd>
<p>

If a scanline is laid in an image region with no or just very small
gray value dynamic range (e.g., in a white region with all
gray values near 255), the edge detection threshold based on
<i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i> would be computed unreasonably small. This
leads typically to the detection of a big amount of false edges.
<i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i> is used to prevent such misdetections.
If the threshold value based on <i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i> gets smaller
than the value of <i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i>, the latter is used as
threshold instead. By default, <i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i> is set to
<i>5.0</i>. A greater value might be more appropriate for images
with high noise levels. On the other hand, in noise-free images
with very weak contrast, this parameter might disturb the detection
of real edges, so it might be necessary to reduce it or even
completely disable it by setting it to <i>0.0</i>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> [<i>0.0</i>, ..., <i>10.0</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Value range:
      </span></span> [<i>0.0</i>, .., <i>65535</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>5.0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span></i>:</b></dt>
<dd>
<p>

Minimal contrast between the foreground and the background of the bar
code elements. Setting this parameter to values greater than 5 will help
该算子 <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> to optimize the candidate region
search. <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> will reject all candidate regions with a
contrast value below <i><span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span></i>. Hence, setting a high
<i><span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span></i> value will improve the runtime performance of
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>. However, please note, that all bar codes with a
contrast value below <i><span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span></i> will not be read. The
calculated contrast value is an approximation in order to speed up the
execution time. Try to set a lower threshold for <i><span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span></i>
in order to find bar codes which might get rejected and have a contrast
value that is close to the specified <i><span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span></i>.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>40</i>, <i>90</i>,
<i>120</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0</i></p>


</dd>
</dl>
<h3>Values specific for print quality inspection:</h3>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_reflectance_reference'</span><span data-if="c" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="com" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="python" style="display:none">"quality_isoiec15416_reflectance_reference"</span></i>:</b></dt>
<dd>
<p>

The reflectances used to assess the quality grades Symbol Contrast,
Minimal Reflectance, and Minimal Edge Contrast is
normalized with a reference gray value for reflectance.
This value can be obtained with barium sulphate or magnesium oxide
samples, i.a., see ISO/IEC 15416:2016 section 5.2.
<span class="pardesc"><span class="parcat">Value range:
      </span></span> [<i>1</i> .. <i>255</i>]</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>255</i>
</p>
</dd>
</dl>
<h3>Values that only apply to certain code types:</h3>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'check_char'</span><span data-if="c" style="display:none">"check_char"</span><span data-if="cpp" style="display:none">"check_char"</span><span data-if="com" style="display:none">"check_char"</span><span data-if="dotnet" style="display:none">"check_char"</span><span data-if="python" style="display:none">"check_char"</span></i>:</b></dt>
<dd>
<p>

Bar codes with an optional check character are interpreted according
to this parameter.
These bar code types include, e.g., Code 39, Codabar, 2/5
Industrial and 2/5 Interleaved.
The default setting of <i><span data-if="hdevelop" style="display:inline">'absent'</span><span data-if="c" style="display:none">"absent"</span><span data-if="cpp" style="display:none">"absent"</span><span data-if="com" style="display:none">"absent"</span><span data-if="dotnet" style="display:none">"absent"</span><span data-if="python" style="display:none">"absent"</span></i> assumes that
no check character is present. In this case, no check is performed and
all characters are returned as data.</p>
<p>
When set to <i><span data-if="hdevelop" style="display:inline">'present'</span><span data-if="c" style="display:none">"present"</span><span data-if="cpp" style="display:none">"present"</span><span data-if="com" style="display:none">"present"</span><span data-if="dotnet" style="display:none">"present"</span><span data-if="python" style="display:none">"present"</span></i>, a check character is expected and used
to verify the correctness of the bar code.
If the check sum matches, the check character itself is
stripped from the data. If this stripping is undesired, the mode
<i><span data-if="hdevelop" style="display:inline">'preserved'</span><span data-if="c" style="display:none">"preserved"</span><span data-if="cpp" style="display:none">"preserved"</span><span data-if="com" style="display:none">"preserved"</span><span data-if="dotnet" style="display:none">"preserved"</span><span data-if="python" style="display:none">"preserved"</span></i> allows to verify the bar code while still keeping
the check character in the data.
In the case the check sum does not match, no bar code result is
returned.</p>
<p>
For bar code types with a mandatory check character the
parameter <i><span data-if="hdevelop" style="display:inline">'check_char'</span><span data-if="c" style="display:none">"check_char"</span><span data-if="cpp" style="display:none">"check_char"</span><span data-if="com" style="display:none">"check_char"</span><span data-if="dotnet" style="display:none">"check_char"</span><span data-if="python" style="display:none">"check_char"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'present'</span><span data-if="c" style="display:none">"present"</span><span data-if="cpp" style="display:none">"present"</span><span data-if="com" style="display:none">"present"</span><span data-if="dotnet" style="display:none">"present"</span><span data-if="python" style="display:none">"present"</span></i>.
However, if the check character is removed from the data or stays,
depends on the standard of the specific code type.
Such code types include, e.g., Code 128, EAN-8, EAN-13, and UPC-A.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'absent'</span><span data-if="c" style="display:none">"absent"</span><span data-if="cpp" style="display:none">"absent"</span><span data-if="com" style="display:none">"absent"</span><span data-if="dotnet" style="display:none">"absent"</span><span data-if="python" style="display:none">"absent"</span></i>, <i><span data-if="hdevelop" style="display:inline">'present'</span><span data-if="c" style="display:none">"present"</span><span data-if="cpp" style="display:none">"present"</span><span data-if="com" style="display:none">"present"</span><span data-if="dotnet" style="display:none">"present"</span><span data-if="python" style="display:none">"present"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'preserved'</span><span data-if="c" style="display:none">"preserved"</span><span data-if="cpp" style="display:none">"preserved"</span><span data-if="com" style="display:none">"preserved"</span><span data-if="dotnet" style="display:none">"preserved"</span><span data-if="python" style="display:none">"preserved"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'absent'</span><span data-if="c" style="display:none">"absent"</span><span data-if="cpp" style="display:none">"absent"</span><span data-if="com" style="display:none">"absent"</span><span data-if="dotnet" style="display:none">"absent"</span><span data-if="python" style="display:none">"absent"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'composite_code'</span><span data-if="c" style="display:none">"composite_code"</span><span data-if="cpp" style="display:none">"composite_code"</span><span data-if="com" style="display:none">"composite_code"</span><span data-if="dotnet" style="display:none">"composite_code"</span><span data-if="python" style="display:none">"composite_code"</span></i>:</b></dt>
<dd>
<p>

Most of the GS1 conform bar codes can have an additional 2D GS1
Composite code component appended. If <i><span data-if="hdevelop" style="display:inline">'composite_code'</span><span data-if="c" style="display:none">"composite_code"</span><span data-if="cpp" style="display:none">"composite_code"</span><span data-if="com" style="display:none">"composite_code"</span><span data-if="dotnet" style="display:none">"composite_code"</span><span data-if="python" style="display:none">"composite_code"</span></i> is set
to <i><span data-if="hdevelop" style="display:inline">'CC-A/B'</span><span data-if="c" style="display:none">"CC-A/B"</span><span data-if="cpp" style="display:none">"CC-A/B"</span><span data-if="com" style="display:none">"CC-A/B"</span><span data-if="dotnet" style="display:none">"CC-A/B"</span><span data-if="python" style="display:none">"CC-A/B"</span></i> the composite component will be found and decoded.
By default, <i><span data-if="hdevelop" style="display:inline">'composite_code'</span><span data-if="c" style="display:none">"composite_code"</span><span data-if="cpp" style="display:none">"composite_code"</span><span data-if="com" style="display:none">"composite_code"</span><span data-if="dotnet" style="display:none">"composite_code"</span><span data-if="python" style="display:none">"composite_code"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i> and
thus it is disabled. If the searched bar code symbol has no attached
composite component, just the result of the bar code itself is returned
by <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>. Currently, composite codes are supported only
for bar codes of the GS1 DataBar family.</p>
<p>
This parameter can be set specifically for different types of bar codes
by using 该算子 <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>, <i><span data-if="hdevelop" style="display:inline">'CC-A/B'</span><span data-if="c" style="display:none">"CC-A/B"</span><span data-if="cpp" style="display:none">"CC-A/B"</span><span data-if="com" style="display:none">"CC-A/B"</span><span data-if="dotnet" style="display:none">"CC-A/B"</span><span data-if="python" style="display:none">"CC-A/B"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'upce_encodation'</span><span data-if="c" style="display:none">"upce_encodation"</span><span data-if="cpp" style="display:none">"upce_encodation"</span><span data-if="com" style="display:none">"upce_encodation"</span><span data-if="dotnet" style="display:none">"upce_encodation"</span><span data-if="python" style="display:none">"upce_encodation"</span></i>:</b></dt>
<dd>
<p>

For UPC-E bar codes, different output formats can be used. By default,
<i><span data-if="hdevelop" style="display:inline">'upce_encodation'</span><span data-if="c" style="display:none">"upce_encodation"</span><span data-if="cpp" style="display:none">"upce_encodation"</span><span data-if="com" style="display:none">"upce_encodation"</span><span data-if="dotnet" style="display:none">"upce_encodation"</span><span data-if="python" style="display:none">"upce_encodation"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'ucc-12'</span><span data-if="c" style="display:none">"ucc-12"</span><span data-if="cpp" style="display:none">"ucc-12"</span><span data-if="com" style="display:none">"ucc-12"</span><span data-if="dotnet" style="display:none">"ucc-12"</span><span data-if="python" style="display:none">"ucc-12"</span></i> and the decoded
string will be returned in UCC-12 format (consisting of 12 digits). If
<i><span data-if="hdevelop" style="display:inline">'upce_encodation'</span><span data-if="c" style="display:none">"upce_encodation"</span><span data-if="cpp" style="display:none">"upce_encodation"</span><span data-if="com" style="display:none">"upce_encodation"</span><span data-if="dotnet" style="display:none">"upce_encodation"</span><span data-if="python" style="display:none">"upce_encodation"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'zero-suppressed'</span><span data-if="c" style="display:none">"zero-suppressed"</span><span data-if="cpp" style="display:none">"zero-suppressed"</span><span data-if="com" style="display:none">"zero-suppressed"</span><span data-if="dotnet" style="display:none">"zero-suppressed"</span><span data-if="python" style="display:none">"zero-suppressed"</span></i>, the
result will be returned in zero-suppressed format (with suppressed zeros
at defined places). This format consists of a leading zero (or a leading one,
see <i><span data-if="hdevelop" style="display:inline">'upce1_enable'</span><span data-if="c" style="display:none">"upce1_enable"</span><span data-if="cpp" style="display:none">"upce1_enable"</span><span data-if="com" style="display:none">"upce1_enable"</span><span data-if="dotnet" style="display:none">"upce1_enable"</span><span data-if="python" style="display:none">"upce1_enable"</span></i>), six encoded
digits, and an implicitly encoded check digit. This corresponds to the
format demanded by ISO/IEC 15420:2009 standard.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'ucc-12'</span><span data-if="c" style="display:none">"ucc-12"</span><span data-if="cpp" style="display:none">"ucc-12"</span><span data-if="com" style="display:none">"ucc-12"</span><span data-if="dotnet" style="display:none">"ucc-12"</span><span data-if="python" style="display:none">"ucc-12"</span></i>, <i><span data-if="hdevelop" style="display:inline">'zero-suppressed'</span><span data-if="c" style="display:none">"zero-suppressed"</span><span data-if="cpp" style="display:none">"zero-suppressed"</span><span data-if="com" style="display:none">"zero-suppressed"</span><span data-if="dotnet" style="display:none">"zero-suppressed"</span><span data-if="python" style="display:none">"zero-suppressed"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'ucc-12'</span><span data-if="c" style="display:none">"ucc-12"</span><span data-if="cpp" style="display:none">"ucc-12"</span><span data-if="com" style="display:none">"ucc-12"</span><span data-if="dotnet" style="display:none">"ucc-12"</span><span data-if="python" style="display:none">"ucc-12"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'upce1_enable'</span><span data-if="c" style="display:none">"upce1_enable"</span><span data-if="cpp" style="display:none">"upce1_enable"</span><span data-if="com" style="display:none">"upce1_enable"</span><span data-if="dotnet" style="display:none">"upce1_enable"</span><span data-if="python" style="display:none">"upce1_enable"</span></i>:</b></dt>
<dd>
<p>

The parameter <i><span data-if="hdevelop" style="display:inline">'upce1_enable'</span><span data-if="c" style="display:none">"upce1_enable"</span><span data-if="cpp" style="display:none">"upce1_enable"</span><span data-if="com" style="display:none">"upce1_enable"</span><span data-if="dotnet" style="display:none">"upce1_enable"</span><span data-if="python" style="display:none">"upce1_enable"</span></i> enables the decoding of UPC-E
bar codes with number system 1, if the parameter is set to
<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>. UPC-E bar codes with number system 1 are an extension
of UPC-E bar codes with number system 0, but are not documented in
the underlying standard ISO/IEC 15420:2009.
UPC-E bar codes with number system 1 also support the different output
formats mentioned in <i><span data-if="hdevelop" style="display:inline">'upce_encodation'</span><span data-if="c" style="display:none">"upce_encodation"</span><span data-if="cpp" style="display:none">"upce_encodation"</span><span data-if="com" style="display:none">"upce_encodation"</span><span data-if="dotnet" style="display:none">"upce_encodation"</span><span data-if="python" style="display:none">"upce_encodation"</span></i>, noting that the formats
contain a leading one instead of a leading zero in UPC-E bar codes
with number system 0.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>
</dl>
<h3>Training:</h3>
<p>Besides setting the model parameters manually with
<code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code>, the model can also be trained with
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> based on one or several sample images.
For this, a bar code model must be created in training mode or an existing
bar code model must be put into training mode by passing the generic
parameter <i><span data-if="hdevelop" style="display:inline">'train'</span><span data-if="c" style="display:none">"train"</span><span data-if="cpp" style="display:none">"train"</span><span data-if="com" style="display:none">"train"</span><span data-if="dotnet" style="display:none">"train"</span><span data-if="python" style="display:none">"train"</span></i> in <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> of
<code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code>.
The corresponding value passed in <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> determines
the model parameters that should be learned.
The following values are possible:
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>:</b></dt>
<dd>
<p>

Train all possible model parameters.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i>:</b></dt>
<dd>
<p>

Minimal size of the base bar code elements.
This setting activates the training mode for the parameter
<i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i>:</b></dt>
<dd>
<p>

Maximal size of the base bar code elements.
This setting activates the training mode for the parameter
<i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'barcode_width_min'</span><span data-if="c" style="display:none">"barcode_width_min"</span><span data-if="cpp" style="display:none">"barcode_width_min"</span><span data-if="com" style="display:none">"barcode_width_min"</span><span data-if="dotnet" style="display:none">"barcode_width_min"</span><span data-if="python" style="display:none">"barcode_width_min"</span></i>:</b></dt>
<dd>
<p>

Minimal bar code width.
This setting activates the training mode for the parameter
<i><span data-if="hdevelop" style="display:inline">'barcode_width_min'</span><span data-if="c" style="display:none">"barcode_width_min"</span><span data-if="cpp" style="display:none">"barcode_width_min"</span><span data-if="com" style="display:none">"barcode_width_min"</span><span data-if="dotnet" style="display:none">"barcode_width_min"</span><span data-if="python" style="display:none">"barcode_width_min"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'barcode_width_max'</span><span data-if="c" style="display:none">"barcode_width_max"</span><span data-if="cpp" style="display:none">"barcode_width_max"</span><span data-if="com" style="display:none">"barcode_width_max"</span><span data-if="dotnet" style="display:none">"barcode_width_max"</span><span data-if="python" style="display:none">"barcode_width_max"</span></i>:</b></dt>
<dd>
<p>

Maximal bar code width.
This setting activates the training mode for the parameter
<i><span data-if="hdevelop" style="display:inline">'barcode_width_max'</span><span data-if="c" style="display:none">"barcode_width_max"</span><span data-if="cpp" style="display:none">"barcode_width_max"</span><span data-if="com" style="display:none">"barcode_width_max"</span><span data-if="dotnet" style="display:none">"barcode_width_max"</span><span data-if="python" style="display:none">"barcode_width_max"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i>:</b></dt>
<dd>
<p>

Relative threshold for measuring the edge position within a scanline.
This setting activates the training mode for the parameter
<i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i>:</b></dt>
<dd>
<p>

Absolute threshold for measuring the edge position within a scanline.
This setting activates the training mode for the parameter
<i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>:</b></dt>
<dd>
<p>

Orientation of the bar code. This setting activates the training mode
for
the parameters <i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i> and <i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i>.
After ending the training the value for <i><span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span></i>
can be increased by a tolerance value to be able to find bar codes
with orientations slightly beyond the trained orientations.
</p>
</dd>
</dl>
<p>It is possible to train several of these parameters in one
call of <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> by passing the generic parameter
<i><span data-if="hdevelop" style="display:inline">'train'</span><span data-if="c" style="display:none">"train"</span><span data-if="cpp" style="display:none">"train"</span><span data-if="com" style="display:none">"train"</span><span data-if="dotnet" style="display:none">"train"</span><span data-if="python" style="display:none">"train"</span></i> in <code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code> in a tuple more than once in
conjunction with the appropriate parameters: e.g.,
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">['train','train']</span><span data-if="c" style="display:none">["train","train"]</span><span data-if="cpp" style="display:none">["train","train"]</span><span data-if="com" style="display:none">["train","train"]</span><span data-if="dotnet" style="display:none">["train","train"]</span><span data-if="python" style="display:none">["train","train"]</span></i> and
<a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">['element_size_min','element_size_max']</span><span data-if="c" style="display:none">["element_size_min","element_size_max"]</span><span data-if="cpp" style="display:none">["element_size_min","element_size_max"]</span><span data-if="com" style="display:none">["element_size_min","element_size_max"]</span><span data-if="dotnet" style="display:none">["element_size_min","element_size_max"]</span><span data-if="python" style="display:none">["element_size_min","element_size_max"]</span></i>.
Furthermore, in conjunction with <i><span data-if="hdevelop" style="display:inline">'train'</span><span data-if="c" style="display:none">"train"</span><span data-if="cpp" style="display:none">"train"</span><span data-if="com" style="display:none">"train"</span><span data-if="dotnet" style="display:none">"train"</span><span data-if="python" style="display:none">"train"</span></i> = <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>
it is possible to exclude single parameters from training
explicitly again by passing <i><span data-if="hdevelop" style="display:inline">'train'</span><span data-if="c" style="display:none">"train"</span><span data-if="cpp" style="display:none">"train"</span><span data-if="com" style="display:none">"train"</span><span data-if="dotnet" style="display:none">"train"</span><span data-if="python" style="display:none">"train"</span></i> more than once.
The names of the parameters to exclude, however, must be prefixed
by <i><span data-if="hdevelop" style="display:inline">'~'</span><span data-if="c" style="display:none">"~"</span><span data-if="cpp" style="display:none">"~"</span><span data-if="com" style="display:none">"~"</span><span data-if="dotnet" style="display:none">"~"</span><span data-if="python" style="display:none">"~"</span></i>:
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">['train','train']</span><span data-if="c" style="display:none">["train","train"]</span><span data-if="cpp" style="display:none">["train","train"]</span><span data-if="com" style="display:none">["train","train"]</span><span data-if="dotnet" style="display:none">["train","train"]</span><span data-if="python" style="display:none">["train","train"]</span></i> and
<a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> =
<i><span data-if="hdevelop" style="display:inline">['all','~orientation']</span><span data-if="c" style="display:none">["all","~orientation"]</span><span data-if="cpp" style="display:none">["all","~orientation"]</span><span data-if="com" style="display:none">["all","~orientation"]</span><span data-if="dotnet" style="display:none">["all","~orientation"]</span><span data-if="python" style="display:none">["all","~orientation"]</span></i>,
e.g., trains all parameters except the orientation.
</p>
<p>Afterwards, 该算子 <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> has to be called for every
image to be trained.
</p>
<p>For training the model, the following aspects should be considered:
</p>
<ul>

<li>
<p>
Additionally needed, non-trained parameters (e.g., <i><span data-if="hdevelop" style="display:inline">'check_char'</span><span data-if="c" style="display:none">"check_char"</span><span data-if="cpp" style="display:none">"check_char"</span><span data-if="com" style="display:none">"check_char"</span><span data-if="dotnet" style="display:none">"check_char"</span><span data-if="python" style="display:none">"check_char"</span></i>)
must be set manually before the training.
</p>
</li>
<li>
<p>
To use several images for the training, 该算子
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> must be called once for every sample image.
</p>
</li>
<li>
<p>
On a single training image there may be multiple bar codes of the selected
code type visible.
</p>
</li>
<li>
<p> Please check the output of <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> during training.
Every decoded bar code will contribute to the trained bar code
model.  Hence, please make sure, that there are no false decodes. If you
encounter false decodes, you may have to discard the image or set appropriate
parameters in advance (e.g., you may need to increase the value of the
parameter <i><span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span></i> or you may try to reduce the
domain of the image appropriately).
</p>
</li>
<li>
<p>
In an application with very similar images, <em>one</em> image for
the training may be sufficient for the parameters
<i><span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span></i>, <i><span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span></i>, and <i><span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span></i>.
</p>
<p>For the training of the parameter <i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>, at least two
images are needed showing the bar code at its minimum and maximum
orientations.
</p>
</li>
<li>
<p>
In applications where the element size is not fixed,
the smallest as well as the biggest symbols should be used for
the training.
If this can not be guaranteed, the limits for the element size
should be adapted manually after the training or the element
sizes should entirely be excluded from the training.
</p>
</li>
<li>
<p>
During the first call of <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> in the
training mode, the trained model parameters are restricted to
the properties of the detected bar code.
Any successive training call will, where necessary, extend the
parameter range to cover the already trained bar codes as well as
the new bar code.
</p>
</li>
<li>
<p>
The training can be stopped when enough images have been trained.
Before this, the trained parameters should be retrieved.
With 该算子 <a href="query_bar_code_params.html"><code><span data-if="hdevelop" style="display:inline">query_bar_code_params</span><span data-if="c" style="display:none">query_bar_code_params</span><span data-if="cpp" style="display:none">QueryBarCodeParams</span><span data-if="com" style="display:none">QueryBarCodeParams</span><span data-if="dotnet" style="display:none">QueryBarCodeParams</span><span data-if="python" style="display:none">query_bar_code_params</span></code></a> the names of the
trained parameters - split into specific and general parameters -
can be determined. The values of the parameters can then be retrieved
with 该算子s <a href="get_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_param_specific</span><span data-if="c" style="display:none">get_bar_code_param_specific</span><span data-if="cpp" style="display:none">GetBarCodeParamSpecific</span><span data-if="com" style="display:none">GetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">GetBarCodeParamSpecific</span><span data-if="python" style="display:none">get_bar_code_param_specific</span></code></a>
and <a href="get_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_param</span><span data-if="c" style="display:none">get_bar_code_param</span><span data-if="cpp" style="display:none">GetBarCodeParam</span><span data-if="com" style="display:none">GetBarCodeParam</span><span data-if="dotnet" style="display:none">GetBarCodeParam</span><span data-if="python" style="display:none">get_bar_code_param</span></code></a>.
</p>
<p>To stop the training, all trained parameters are excluded from the
training by calling 该算子 <code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code>
with the parameters <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'train'</span><span data-if="c" style="display:none">"train"</span><span data-if="cpp" style="display:none">"train"</span><span data-if="com" style="display:none">"train"</span><span data-if="dotnet" style="display:none">"train"</span><span data-if="python" style="display:none">"train"</span></i> and
<a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'~all'</span><span data-if="c" style="display:none">"~all"</span><span data-if="cpp" style="display:none">"~all"</span><span data-if="com" style="display:none">"~all"</span><span data-if="dotnet" style="display:none">"~all"</span><span data-if="python" style="display:none">"~all"</span></i>.
</p>
<p>Alternatively, the existing bar code model can simply be cleared with
该算子 <a href="clear_bar_code_model.html"><code><span data-if="hdevelop" style="display:inline">clear_bar_code_model</span><span data-if="c" style="display:none">clear_bar_code_model</span><span data-if="cpp" style="display:none">ClearBarCodeModel</span><span data-if="com" style="display:none">ClearBarCodeModel</span><span data-if="dotnet" style="display:none">ClearBarCodeModel</span><span data-if="python" style="display:none">clear_bar_code_model</span></code></a>.
</p>
</li>
<li>
<p>
The value of any trained parameter should not be set explicitly with
<code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code> or <a href="set_bar_code_param_specific.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></code></a>
during training mode. If this is done, the complete internal training
data is being reset and training will be started again at the beginning
with the next call of <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>.
</p>
</li>
<li>
<p>
If <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> is not able to read the bar code
in the training image, this will produce no error or
exception handling.
It can simply be tested in the program by checking the
output parameter DecodedDataStrings or SymbolRegions.
These tuples will then be empty and the parameters of the model
(especially the trained parameters) will not be modified.
</p>
</li>
<li>
<p>
Timeouts are disabled during the training.
</p>
</li>
</ul>
<h3>Miscellaneous:</h3>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i>:</b></dt>
<dd>
<p>

By the use of this parameter, it is possible to abort
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> after a defined period in milliseconds. This
is especially useful in cases where a maximum cycle time has to be
ensured.
All results gained before the timeout can be accessed by
<a href="get_bar_code_result.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code></a>. Passing values less or equal zero
implies a deactivation of the timeout (default).</p>
<p>
The temporal accuracy of this timeout is about 10 ms. It
depends on several factors including
the speed of your computer and the <i><span data-if="hdevelop" style="display:inline">'timer_mode'</span><span data-if="c" style="display:none">"timer_mode"</span><span data-if="cpp" style="display:none">"timer_mode"</span><span data-if="com" style="display:none">"timer_mode"</span><span data-if="dotnet" style="display:none">"timer_mode"</span><span data-if="python" style="display:none">"timer_mode"</span></i> set
via <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a>.</p>
<p>
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> does not raise an exception if a
timeout occurs. To check whether <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> has been
aborted, check the parameter <i><span data-if="hdevelop" style="display:inline">'aborted'</span><span data-if="c" style="display:none">"aborted"</span><span data-if="cpp" style="display:none">"aborted"</span><span data-if="com" style="display:none">"aborted"</span><span data-if="dotnet" style="display:none">"aborted"</span><span data-if="python" style="display:none">"aborted"</span></i> in
<a href="get_bar_code_result.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code></a>.</p>
<p>
Note that the timeout is ignored if <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>
runs in training mode.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i>-1</i>, <i>20</i>,
<i>100</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'abort'</span><span data-if="c" style="display:none">"abort"</span><span data-if="cpp" style="display:none">"abort"</span><span data-if="com" style="display:none">"abort"</span><span data-if="dotnet" style="display:none">"abort"</span><span data-if="python" style="display:none">"abort"</span></i>:</b></dt>
<dd>
<p>

Using this option, it is possible to abort <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>
from another thread. When <code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code> is called with
<i><span data-if="hdevelop" style="display:inline">'abort'</span><span data-if="c" style="display:none">"abort"</span><span data-if="cpp" style="display:none">"abort"</span><span data-if="com" style="display:none">"abort"</span><span data-if="dotnet" style="display:none">"abort"</span><span data-if="python" style="display:none">"abort"</span></i>, an instance of <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> with the model
<a href="#BarCodeHandle"><i><code><span data-if="hdevelop" style="display:inline">BarCodeHandle</span><span data-if="c" style="display:none">BarCodeHandle</span><span data-if="cpp" style="display:none">BarCodeHandle</span><span data-if="com" style="display:none">BarCodeHandle</span><span data-if="dotnet" style="display:none">barCodeHandle</span><span data-if="python" style="display:none">bar_code_handle</span></code></i></a> running in another thread is requested to abort.
If there is no <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> running with this model, nothing
happens.</p>
<p>
该算子 <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> might not return immediately. It has
to reach a cancellation point to ensure a proper cleanup. Depending on
different factors like the computer performance this may take up to 10
ms.</p>
<p>
All decoded results until this moment, are still returned. Note that the
parameter is ignored if <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> runs in training mode.</p>
<p>
Note: This is the only action with a bar code handle, which can be used
from different threads without requiring additional synchronization.</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> (The value is not processed.)
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i>:</b></dt>
<dd>
<p>

Setting the model in persistence mode to <i>1</i>, makes it store
some intermediate results during bar code decoding. These results
are required if the bar code print quality has to be assessed
(<a href="get_bar_code_result.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code></a> with <i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i>) or
the decoding scanlines have to be inspected (<a href="get_bar_code_object.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_object</span><span data-if="c" style="display:none">get_bar_code_object</span><span data-if="cpp" style="display:none">GetBarCodeObject</span><span data-if="com" style="display:none">GetBarCodeObject</span><span data-if="dotnet" style="display:none">GetBarCodeObject</span><span data-if="python" style="display:none">get_bar_code_object</span></code></a>
with <i><span data-if="hdevelop" style="display:inline">'scanlines_all'</span><span data-if="c" style="display:none">"scanlines_all"</span><span data-if="cpp" style="display:none">"scanlines_all"</span><span data-if="com" style="display:none">"scanlines_all"</span><span data-if="dotnet" style="display:none">"scanlines_all"</span><span data-if="python" style="display:none">"scanlines_all"</span></i> or <i><span data-if="hdevelop" style="display:inline">'scanlines_valid'</span><span data-if="c" style="display:none">"scanlines_valid"</span><span data-if="cpp" style="display:none">"scanlines_valid"</span><span data-if="com" style="display:none">"scanlines_valid"</span><span data-if="dotnet" style="display:none">"scanlines_valid"</span><span data-if="python" style="display:none">"scanlines_valid"</span></i>). Yet,
enabling the <i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode results in increased memory
requirements for the bar code model structures.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i>0</i>, <i>1</i></p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0</i>
</p>
</dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator modifies the state of the following input parameter:</p>
<ul><li><a href="#BarCodeHandle"><span data-if="hdevelop" style="display:inline">BarCodeHandle</span><span data-if="c" style="display:none">BarCodeHandle</span><span data-if="cpp" style="display:none">BarCodeHandle</span><span data-if="com" style="display:none">BarCodeHandle</span><span data-if="dotnet" style="display:none">barCodeHandle</span><span data-if="python" style="display:none">bar_code_handle</span></a></li></ul>
<p>During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="BarCodeHandle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">BarCodeHandle</span><span data-if="c" style="display:none">BarCodeHandle</span><span data-if="cpp" style="display:none">BarCodeHandle</span><span data-if="com" style="display:none">BarCodeHandle</span><span data-if="dotnet" style="display:none">barCodeHandle</span><span data-if="python" style="display:none">bar_code_handle</span></code></b> (input_control, state is modified)  </span><span>barcode <code>→</code> <span data-if="dotnet" style="display:none"><a href="HBarCode.html">HBarCode</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the bar code model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the generic parameters that shall be
adjusted for finding and decoding bar codes.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'element_size_min'</span>
    <span data-if="c" style="display:none">"element_size_min"</span>
    <span data-if="cpp" style="display:none">"element_size_min"</span>
    <span data-if="com" style="display:none">"element_size_min"</span>
    <span data-if="dotnet" style="display:none">"element_size_min"</span>
    <span data-if="python" style="display:none">"element_size_min"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'abort'</span><span data-if="c" style="display:none">"abort"</span><span data-if="cpp" style="display:none">"abort"</span><span data-if="com" style="display:none">"abort"</span><span data-if="dotnet" style="display:none">"abort"</span><span data-if="python" style="display:none">"abort"</span>, <span data-if="hdevelop" style="display:inline">'barcode_height_min'</span><span data-if="c" style="display:none">"barcode_height_min"</span><span data-if="cpp" style="display:none">"barcode_height_min"</span><span data-if="com" style="display:none">"barcode_height_min"</span><span data-if="dotnet" style="display:none">"barcode_height_min"</span><span data-if="python" style="display:none">"barcode_height_min"</span>, <span data-if="hdevelop" style="display:inline">'barcode_width_max'</span><span data-if="c" style="display:none">"barcode_width_max"</span><span data-if="cpp" style="display:none">"barcode_width_max"</span><span data-if="com" style="display:none">"barcode_width_max"</span><span data-if="dotnet" style="display:none">"barcode_width_max"</span><span data-if="python" style="display:none">"barcode_width_max"</span>, <span data-if="hdevelop" style="display:inline">'barcode_width_min'</span><span data-if="c" style="display:none">"barcode_width_min"</span><span data-if="cpp" style="display:none">"barcode_width_min"</span><span data-if="com" style="display:none">"barcode_width_min"</span><span data-if="dotnet" style="display:none">"barcode_width_min"</span><span data-if="python" style="display:none">"barcode_width_min"</span>, <span data-if="hdevelop" style="display:inline">'check_char'</span><span data-if="c" style="display:none">"check_char"</span><span data-if="cpp" style="display:none">"check_char"</span><span data-if="com" style="display:none">"check_char"</span><span data-if="dotnet" style="display:none">"check_char"</span><span data-if="python" style="display:none">"check_char"</span>, <span data-if="hdevelop" style="display:inline">'composite_code'</span><span data-if="c" style="display:none">"composite_code"</span><span data-if="cpp" style="display:none">"composite_code"</span><span data-if="com" style="display:none">"composite_code"</span><span data-if="dotnet" style="display:none">"composite_code"</span><span data-if="python" style="display:none">"composite_code"</span>, <span data-if="hdevelop" style="display:inline">'contrast_min'</span><span data-if="c" style="display:none">"contrast_min"</span><span data-if="cpp" style="display:none">"contrast_min"</span><span data-if="com" style="display:none">"contrast_min"</span><span data-if="dotnet" style="display:none">"contrast_min"</span><span data-if="python" style="display:none">"contrast_min"</span>, <span data-if="hdevelop" style="display:inline">'element_size_max'</span><span data-if="c" style="display:none">"element_size_max"</span><span data-if="cpp" style="display:none">"element_size_max"</span><span data-if="com" style="display:none">"element_size_max"</span><span data-if="dotnet" style="display:none">"element_size_max"</span><span data-if="python" style="display:none">"element_size_max"</span>, <span data-if="hdevelop" style="display:inline">'element_size_min'</span><span data-if="c" style="display:none">"element_size_min"</span><span data-if="cpp" style="display:none">"element_size_min"</span><span data-if="com" style="display:none">"element_size_min"</span><span data-if="dotnet" style="display:none">"element_size_min"</span><span data-if="python" style="display:none">"element_size_min"</span>, <span data-if="hdevelop" style="display:inline">'element_size_variable'</span><span data-if="c" style="display:none">"element_size_variable"</span><span data-if="cpp" style="display:none">"element_size_variable"</span><span data-if="com" style="display:none">"element_size_variable"</span><span data-if="dotnet" style="display:none">"element_size_variable"</span><span data-if="python" style="display:none">"element_size_variable"</span>, <span data-if="hdevelop" style="display:inline">'majority_voting'</span><span data-if="c" style="display:none">"majority_voting"</span><span data-if="cpp" style="display:none">"majority_voting"</span><span data-if="com" style="display:none">"majority_voting"</span><span data-if="dotnet" style="display:none">"majority_voting"</span><span data-if="python" style="display:none">"majority_voting"</span>, <span data-if="hdevelop" style="display:inline">'max_code_length'</span><span data-if="c" style="display:none">"max_code_length"</span><span data-if="cpp" style="display:none">"max_code_length"</span><span data-if="com" style="display:none">"max_code_length"</span><span data-if="dotnet" style="display:none">"max_code_length"</span><span data-if="python" style="display:none">"max_code_length"</span>, <span data-if="hdevelop" style="display:inline">'meas_thresh'</span><span data-if="c" style="display:none">"meas_thresh"</span><span data-if="cpp" style="display:none">"meas_thresh"</span><span data-if="com" style="display:none">"meas_thresh"</span><span data-if="dotnet" style="display:none">"meas_thresh"</span><span data-if="python" style="display:none">"meas_thresh"</span>, <span data-if="hdevelop" style="display:inline">'meas_thresh_abs'</span><span data-if="c" style="display:none">"meas_thresh_abs"</span><span data-if="cpp" style="display:none">"meas_thresh_abs"</span><span data-if="com" style="display:none">"meas_thresh_abs"</span><span data-if="dotnet" style="display:none">"meas_thresh_abs"</span><span data-if="python" style="display:none">"meas_thresh_abs"</span>, <span data-if="hdevelop" style="display:inline">'merge_scanlines'</span><span data-if="c" style="display:none">"merge_scanlines"</span><span data-if="cpp" style="display:none">"merge_scanlines"</span><span data-if="com" style="display:none">"merge_scanlines"</span><span data-if="dotnet" style="display:none">"merge_scanlines"</span><span data-if="python" style="display:none">"merge_scanlines"</span>, <span data-if="hdevelop" style="display:inline">'min_code_length'</span><span data-if="c" style="display:none">"min_code_length"</span><span data-if="cpp" style="display:none">"min_code_length"</span><span data-if="com" style="display:none">"min_code_length"</span><span data-if="dotnet" style="display:none">"min_code_length"</span><span data-if="python" style="display:none">"min_code_length"</span>, <span data-if="hdevelop" style="display:inline">'min_identical_scanlines'</span><span data-if="c" style="display:none">"min_identical_scanlines"</span><span data-if="cpp" style="display:none">"min_identical_scanlines"</span><span data-if="com" style="display:none">"min_identical_scanlines"</span><span data-if="dotnet" style="display:none">"min_identical_scanlines"</span><span data-if="python" style="display:none">"min_identical_scanlines"</span>, <span data-if="hdevelop" style="display:inline">'num_scanlines'</span><span data-if="c" style="display:none">"num_scanlines"</span><span data-if="cpp" style="display:none">"num_scanlines"</span><span data-if="com" style="display:none">"num_scanlines"</span><span data-if="dotnet" style="display:none">"num_scanlines"</span><span data-if="python" style="display:none">"num_scanlines"</span>, <span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span>, <span data-if="hdevelop" style="display:inline">'orientation_tol'</span><span data-if="c" style="display:none">"orientation_tol"</span><span data-if="cpp" style="display:none">"orientation_tol"</span><span data-if="com" style="display:none">"orientation_tol"</span><span data-if="dotnet" style="display:none">"orientation_tol"</span><span data-if="python" style="display:none">"orientation_tol"</span>, <span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span>, <span data-if="hdevelop" style="display:inline">'quality_isoiec15416_reflectance_reference'</span><span data-if="c" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="com" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_reflectance_reference"</span><span data-if="python" style="display:none">"quality_isoiec15416_reflectance_reference"</span>, <span data-if="hdevelop" style="display:inline">'quiet_zone'</span><span data-if="c" style="display:none">"quiet_zone"</span><span data-if="cpp" style="display:none">"quiet_zone"</span><span data-if="com" style="display:none">"quiet_zone"</span><span data-if="dotnet" style="display:none">"quiet_zone"</span><span data-if="python" style="display:none">"quiet_zone"</span>, <span data-if="hdevelop" style="display:inline">'small_elements_robustness'</span><span data-if="c" style="display:none">"small_elements_robustness"</span><span data-if="cpp" style="display:none">"small_elements_robustness"</span><span data-if="com" style="display:none">"small_elements_robustness"</span><span data-if="dotnet" style="display:none">"small_elements_robustness"</span><span data-if="python" style="display:none">"small_elements_robustness"</span>, <span data-if="hdevelop" style="display:inline">'start_stop_tolerance'</span><span data-if="c" style="display:none">"start_stop_tolerance"</span><span data-if="cpp" style="display:none">"start_stop_tolerance"</span><span data-if="com" style="display:none">"start_stop_tolerance"</span><span data-if="dotnet" style="display:none">"start_stop_tolerance"</span><span data-if="python" style="display:none">"start_stop_tolerance"</span>, <span data-if="hdevelop" style="display:inline">'stop_after_result_num'</span><span data-if="c" style="display:none">"stop_after_result_num"</span><span data-if="cpp" style="display:none">"stop_after_result_num"</span><span data-if="com" style="display:none">"stop_after_result_num"</span><span data-if="dotnet" style="display:none">"stop_after_result_num"</span><span data-if="python" style="display:none">"stop_after_result_num"</span>, <span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span>, <span data-if="hdevelop" style="display:inline">'train'</span><span data-if="c" style="display:none">"train"</span><span data-if="cpp" style="display:none">"train"</span><span data-if="com" style="display:none">"train"</span><span data-if="dotnet" style="display:none">"train"</span><span data-if="python" style="display:none">"train"</span>, <span data-if="hdevelop" style="display:inline">'upce1_enable'</span><span data-if="c" style="display:none">"upce1_enable"</span><span data-if="cpp" style="display:none">"upce1_enable"</span><span data-if="com" style="display:none">"upce1_enable"</span><span data-if="dotnet" style="display:none">"upce1_enable"</span><span data-if="python" style="display:none">"upce1_enable"</span>, <span data-if="hdevelop" style="display:inline">'upce_encodation'</span><span data-if="c" style="display:none">"upce_encodation"</span><span data-if="cpp" style="display:none">"upce_encodation"</span><span data-if="com" style="display:none">"upce_encodation"</span><span data-if="dotnet" style="display:none">"upce_encodation"</span><span data-if="python" style="display:none">"upce_encodation"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.value(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[float, int, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Values of the generic parameters that are
adjusted for finding and decoding bar codes.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>8</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 0.1, 1, 1.5, 2, 8, 32, 45, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'present'</span><span data-if="c" style="display:none">"present"</span><span data-if="cpp" style="display:none">"present"</span><span data-if="com" style="display:none">"present"</span><span data-if="dotnet" style="display:none">"present"</span><span data-if="python" style="display:none">"present"</span>, <span data-if="hdevelop" style="display:inline">'absent'</span><span data-if="c" style="display:none">"absent"</span><span data-if="cpp" style="display:none">"absent"</span><span data-if="com" style="display:none">"absent"</span><span data-if="dotnet" style="display:none">"absent"</span><span data-if="python" style="display:none">"absent"</span>, <span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span>, <span data-if="hdevelop" style="display:inline">'CC-A/B'</span><span data-if="c" style="display:none">"CC-A/B"</span><span data-if="cpp" style="display:none">"CC-A/B"</span><span data-if="com" style="display:none">"CC-A/B"</span><span data-if="dotnet" style="display:none">"CC-A/B"</span><span data-if="python" style="display:none">"CC-A/B"</span>, <span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span>, <span data-if="hdevelop" style="display:inline">'high'</span><span data-if="c" style="display:none">"high"</span><span data-if="cpp" style="display:none">"high"</span><span data-if="com" style="display:none">"high"</span><span data-if="dotnet" style="display:none">"high"</span><span data-if="python" style="display:none">"high"</span>, <span data-if="hdevelop" style="display:inline">'low'</span><span data-if="c" style="display:none">"low"</span><span data-if="cpp" style="display:none">"low"</span><span data-if="com" style="display:none">"low"</span><span data-if="dotnet" style="display:none">"low"</span><span data-if="python" style="display:none">"low"</span>, <span data-if="hdevelop" style="display:inline">'ucc-12'</span><span data-if="c" style="display:none">"ucc-12"</span><span data-if="cpp" style="display:none">"ucc-12"</span><span data-if="com" style="display:none">"ucc-12"</span><span data-if="dotnet" style="display:none">"ucc-12"</span><span data-if="python" style="display:none">"ucc-12"</span>, <span data-if="hdevelop" style="display:inline">'zero-suppressed'</span><span data-if="c" style="display:none">"zero-suppressed"</span><span data-if="cpp" style="display:none">"zero-suppressed"</span><span data-if="com" style="display:none">"zero-suppressed"</span><span data-if="dotnet" style="display:none">"zero-suppressed"</span><span data-if="python" style="display:none">"zero-suppressed"</span></p>
</div>
<h2 id="sec_result">结果</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    
if the given parameters are correct.
Otherwise, an exception will be raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="create_bar_code_model.html"><span data-if="hdevelop" style="display:inline">create_bar_code_model</span><span data-if="c" style="display:none">create_bar_code_model</span><span data-if="cpp" style="display:none">CreateBarCodeModel</span><span data-if="com" style="display:none">CreateBarCodeModel</span><span data-if="dotnet" style="display:none">CreateBarCodeModel</span><span data-if="python" style="display:none">create_bar_code_model</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="find_bar_code.html"><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="set_bar_code_param_specific.html"><span data-if="hdevelop" style="display:inline">set_bar_code_param_specific</span><span data-if="c" style="display:none">set_bar_code_param_specific</span><span data-if="cpp" style="display:none">SetBarCodeParamSpecific</span><span data-if="com" style="display:none">SetBarCodeParamSpecific</span><span data-if="dotnet" style="display:none">SetBarCodeParamSpecific</span><span data-if="python" style="display:none">set_bar_code_param_specific</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Bar Code</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
